1. Field of the Invention
The present invention relates to the configuration of an interrupt controller which issues requests for interrupt processing to a processor when an external device generates a leading or trailing edge in an interrupt request signal of the interrupt controller.
2. Description of the Prior Art
Conventionally, in a system provided with an interrupt controller, an interrupt request from an external device to a processor is assigned to the processor through an interrupt controller.
The interrupt request from the external device is assigned to the interrupt controller in the form of an edge trigger or a level trigger on an interrupt request signal. In the case of an edge trigger, the interrupt is requested when the interrupt signal changes from a high level to a low level or from a low level to a high level. However, in the case of a level trigger, the interrupt is requested based on a low level state or from a high level state of an interrupt request signal. The selection as to which of these triggers is used is made by the interrupt controller.
In the case where an interrupt is requested by an edge trigger, when the edge trigger is generated in the interrupt request signal, the interrupt controller recognizes the generation of an interrupt request from an external device, and enters the interrupt generation state. The interrupt request signal to the processor is then validated and the interrupt processing is requested from the controller.
Following this, when the processor responds to the interrupt request from the controller, the interrupt controller is released from the interrupt generation state by an interrupt acknowledge signal which is asserted by a processor during that interrupt acknowledge cycle. Alternatively, the interrupt controller is released from the interrupt generation state by the program during the interrupt processing corresponding to that interrupt request. The interrupt controller, on being released from the interrupt generation state, enters an interrupt non-generation state.
In an interrupt controller which changes between these two states, if an additional interrupt request signal is assigned as an edge trigger from an external device in the interrupt generation state, the edge trigger cannot be recognized. For this reason, the interrupt controller in the interrupt generation state cannot detect whether or not an edge trigger has been regenerated in the interrupt request signal and cannot distinguish whether the interrupt request has been made by means of one edge trigger interrupt request or whether the interrupt request has been made through a plurality of edge trigger interrupt requests.